package com.ruoyi.advertisement.mapper;

import java.util.List;
import com.ruoyi.advertisement.domain.AdvertisementMaterial;

/**
 * 广告素材Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface AdvertisementMaterialMapper 
{
    /**
     * 查询广告素材
     * 
     * @param materialId 广告素材主键
     * @return 广告素材
     */
    public AdvertisementMaterial selectAdvertisementMaterialByMaterialId(Long materialId);

    /**
     * 查询广告素材列表
     * 
     * @param advertisementMaterial 广告素材
     * @return 广告素材集合
     */
    public List<AdvertisementMaterial> selectAdvertisementMaterialList(AdvertisementMaterial advertisementMaterial);

    /**
     * 新增广告素材
     * 
     * @param advertisementMaterial 广告素材
     * @return 结果
     */
    public int insertAdvertisementMaterial(AdvertisementMaterial advertisementMaterial);

    /**
     * 修改广告素材
     * 
     * @param advertisementMaterial 广告素材
     * @return 结果
     */
    public int updateAdvertisementMaterial(AdvertisementMaterial advertisementMaterial);

    /**
     * 删除广告素材
     * 
     * @param materialId 广告素材主键
     * @return 结果
     */
    public int deleteAdvertisementMaterialByMaterialId(Long materialId);

    /**
     * 批量删除广告素材
     * 
     * @param materialIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAdvertisementMaterialByMaterialIds(Long[] materialIds);

    /**
     * 根据素材类型查询素材列表
     * 
     * @param materialType 素材类型
     * @return 素材列表
     */
    public List<AdvertisementMaterial> selectMaterialsByType(Integer materialType);

    /**
     * 根据状态查询素材列表
     * 
     * @param status 状态
     * @return 素材列表
     */
    public List<AdvertisementMaterial> selectMaterialsByStatus(Integer status);

    /**
     * 更新素材播放次数
     * 
     * @param materialId 素材ID
     * @return 结果
     */
    public int incrementViewCount(Long materialId);

    /**
     * 批量查询素材信息
     * 
     * @param materialIds 素材ID列表
     * @return 素材列表
     */
    public List<AdvertisementMaterial> selectMaterialsByIds(List<Long> materialIds);
} 